<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" lang="" xml:lang="">
  <head>
    <meta charset="utf-8" />
    <meta name="generator" content="pandoc" />
    <meta
      name="viewport"
      content="width=device-width, initial-scale=1.0, user-scalable=yes"
    />
    <title>appetite</title>
    <style type="text/css">
      code {
        white-space: pre-wrap;
      }
      span.smallcaps {
        font-variant: small-caps;
      }
      span.underline {
        text-decoration: underline;
      }
      div.column {
        display: inline-block;
        vertical-align: top;
        width: 50%;
      }
    </style>
  </head>
  <body>
    <h3 id="navigation">Navigation</h3>
    <ul>
      <li>
        <a href="https://docs.python.org/3/genindex.html" title="General Index"
          >index</a
        >
      </li>
      <li>
        <a
          href="https://docs.python.org/3/py-modindex.html"
          title="Python Module Index"
          >modules</a
        >
        |
      </li>
      <li>
        <a href="interpreter.html" title="2. Using the Python Interpreter"
          >next</a
        >
        |
      </li>
      <li><a href="index.html" title="The Python Tutorial">previous</a> |</li>
      <li><img src="../_static/py.png" /></li>
      <li><a href="https://www.python.org/">Python</a> »</li>
      <li>
        <a href="https://docs.python.org/3/index.html">3.9.5 Documentation</a> »
      </li>
      <li><a href="index.html">The Python Tutorial</a> »</li>
      <li><div class="line-block"></div></li>
    </ul>
    <p><span id="tut-intro"></span></p>
    <h1 id="whetting-your-appetite">
      <span class="section-number">1. </span>Whetting Your Appetite<a
        href="#whetting-your-appetite"
        class="headerlink"
        title="Permalink to this headline"
        >¶</a
      >
    </h1>
    <p>
      If you do much work on computers, eventually you find that there’s some
      task you’d like to automate. For example, you may wish to perform a
      search-and-replace over a large number of text files, or rename and
      rearrange a bunch of photo files in a complicated way. Perhaps you’d like
      to write a small custom database, or a specialized GUI application, or a
      simple game.
    </p>
    <p>
      If you’re a professional software developer, you may have to work with
      several C/C++/Java libraries but find the usual
      write/compile/test/re-compile cycle is too slow. Perhaps you’re writing a
      test suite for such a library and find writing the testing code a tedious
      task. Or maybe you’ve written a program that could use an extension
      language, and you don’t want to design and implement a whole new language
      for your application.
    </p>
    <p>Python is just the language for you.</p>
    <p>
      You could write a Unix shell script or Windows batch files for some of
      these tasks, but shell scripts are best at moving around files and
      changing text data, not well-suited for GUI applications or games. You
      could write a C/C++/Java program, but it can take a lot of development
      time to get even a first-draft program. Python is simpler to use,
      available on Windows, Mac OS X, and Unix operating systems, and will help
      you get the job done more quickly.
    </p>
    <p>
      Python is simple to use, but it is a real programming language, offering
      much more structure and support for large programs than shell scripts or
      batch files can offer. On the other hand, Python also offers much more
      error checking than C, and, being a <em>very-high-level language</em>, it
      has high-level data types built in, such as flexible arrays and
      dictionaries. Because of its more general data types Python is applicable
      to a much larger problem domain than Awk or even Perl, yet many things are
      at least as easy in Python as in those languages.
    </p>
    <p>
      Python allows you to split your program into modules that can be reused in
      other Python programs. It comes with a large collection of standard
      modules that you can use as the basis of your programs — or as examples to
      start learning to program in Python. Some of these modules provide things
      like file I/O, system calls, sockets, and even interfaces to graphical
      user interface toolkits like Tk.
    </p>
    <p>
      Python is an interpreted language, which can save you considerable time
      during program development because no compilation and linking is
      necessary. The interpreter can be used interactively, which makes it easy
      to experiment with features of the language, to write throw-away programs,
      or to test functions during bottom-up program development. It is also a
      handy desk calculator.
    </p>
    <p>
      Python enables programs to be written compactly and readably. Programs
      written in Python are typically much shorter than equivalent C, C++, or
      Java programs, for several reasons:
    </p>
    <ul>
      <li>
        <p>
          the high-level data types allow you to express complex operations in a
          single statement;
        </p>
      </li>
      <li>
        <p>
          statement grouping is done by indentation instead of beginning and
          ending brackets;
        </p>
      </li>
      <li><p>no variable or argument declarations are necessary.</p></li>
    </ul>
    <p>
      Python is <em>extensible</em>: if you know how to program in C it is easy
      to add a new built-in function or module to the interpreter, either to
      perform critical operations at maximum speed, or to link Python programs
      to libraries that may only be available in binary form (such as a
      vendor-specific graphics library). Once you are really hooked, you can
      link the Python interpreter into an application written in C and use it as
      an extension or command language for that application.
    </p>
    <p>
      By the way, the language is named after the BBC show “Monty Python’s
      Flying Circus” and has nothing to do with reptiles. Making references to
      Monty Python skits in documentation is not only allowed, it is encouraged!
    </p>
    <p>
      Now that you are all excited about Python, you’ll want to examine it in
      some more detail. Since the best way to learn a language is to use it, the
      tutorial invites you to play with the Python interpreter as you read.
    </p>
    <p>
      In the next chapter, the mechanics of using the interpreter are explained.
      This is rather mundane information, but essential for trying out the
      examples shown later.
    </p>
    <p>
      The rest of the tutorial introduces various features of the Python
      language and system through examples, beginning with simple expressions,
      statements and data types, through functions and modules, and finally
      touching upon advanced concepts like exceptions and user-defined classes.
    </p>
    <h4 id="previous-topic">Previous topic</h4>
    <p><a href="index.html" title="previous chapter">The Python Tutorial</a></p>
    <h4 id="next-topic">Next topic</h4>
    <p>
      <a href="interpreter.html" title="next chapter"
        ><span class="section-number">2. </span>Using the Python Interpreter</a
      >
    </p>
    <h3 id="this-page">This Page</h3>
    <ul>
      <li><a href="https://docs.python.org/3/bugs.html">Report a Bug</a></li>
      <li>
        <a
          href="https://github.com/python/cpython/blob/3.9/Doc/tutorial/appetite.rst"
          >Show Source</a
        >
      </li>
    </ul>
    <h3 id="navigation-1">Navigation</h3>
    <ul>
      <li>
        <a href="https://docs.python.org/3/genindex.html" title="General Index"
          >index</a
        >
      </li>
      <li>
        <a
          href="https://docs.python.org/3/py-modindex.html"
          title="Python Module Index"
          >modules</a
        >
        |
      </li>
      <li>
        <a href="interpreter.html" title="2. Using the Python Interpreter"
          >next</a
        >
        |
      </li>
      <li><a href="index.html" title="The Python Tutorial">previous</a> |</li>
      <li><img src="../_static/py.png" /></li>
      <li><a href="https://www.python.org/">Python</a> »</li>
      <li>
        <a href="https://docs.python.org/3/index.html">3.9.5 Documentation</a> »
      </li>
      <li><a href="index.html">The Python Tutorial</a> »</li>
      <li><div class="line-block"></div></li>
    </ul>
    <p>
      ©
      <a href="https://docs.python.org/3/copyright.html">Copyright</a>
      2001-2021, Python Software Foundation.<br />
      The Python Software Foundation is a non-profit corporation.
      <a href="https://www.python.org/psf/donations/">Please donate.</a>
    </p>
    <p>
      Last updated on May 30, 2021.
      <a href="https://docs.python.org/3/bugs.html">Found a bug</a>?<br />
      Created using <a href="https://www.sphinx-doc.org/">Sphinx</a> 2.4.4.
    </p>
  </body>
</html>
